# -*- coding: utf-8 -*-
# @Time    : 2020/2/2 12:28
# @Author  : Weymouth
# @Email   : 261229090@qq.com
# @File    : 函数的作用域1.py
# @Software: PyCharm
# ---------------------------------------------------

#L：local，局部作用域，即函数中定义的变量；
#E：enclosing，嵌套的父级函数的局部作用域，即包含此函数的上级函数的局部作用域，但不是全局；
#G：globa，全局变量，就是模块级别定义的变量；
#B：built-in，系统固定模块里面的变量，比如int，bytearray等。搜索变量的优先级顺序依次是：
#作用域局部>外层作用域>当前模块中的全局>python内置作用域，也就是LEGB。

# x = int(2.9)    #int, built-in
# g_count = 0     #global
# def outer():
#     o_count = 1     #enclosing
#     i_count = 8
#     def inner():
#         i_count = 2     #local
#         print(i_count)
#     print(i_count)
#     inner()
# outer()

# count = 10
# def outer():
#     global count
#     print(count)
#     count = 5
#     print(count)
# outer()

# def outer():
#     count = 10
#     def inner():
#         nonlocal count
#         count = 20
#         print(count)
#     inner()
#     print(count)
# outer()

count = 10
def outer():
    print(count)
    count = 100
    print(count)
outer()